define("sliderGallery",["lodash","react","reactDOM","coreUtils","core","skins","santaProps","galleriesCommon","displayer"],function(a,b,c,d,e,f,g,h,i){"use strict";var j=e.compMixins;var k=h.utils.galleriesHelperFunctions;var l=d.matrix.scalingCalculations;function m(a,b,c){var d=this.state.currentIndex;if(d!==a){if(this.props.onImageSelected){b.type="imageSelected";b.payload={itemIndex:a,imageData:this.props.compData.items[a]};this.props.onImageSelected(b,c)}this.setState({currentIndex:a})}}var n=60;function o(b,c){var d=c.props.selectedItemIndex||0;var e=a.get(b,["currentIndex"],d);return{currentIndex:e}}return{displayName:"SliderGallery",statics:{useSantaTypes:true,behaviors:{nextSlide:{methodName:"next"},prevSlide:{methodName:"prev"}}},mixins:[j.skinBasedComp,j.skinInfo,j.animationsMixin,j.timeoutsMixin,j.compStateMixin(o)],propTypes:a.assign({id:g.Types.Component.id.isRequired,rootId:g.Types.Component.rootId.isRequired,compData:g.Types.Component.compData.isRequired,compProp:g.Types.Component.compData.isRequired,skin:g.Types.Component.skin.isRequired,style:g.Types.Component.style.isRequired,isMobileView:g.Types.isMobileView,isMobileDevice:g.Types.Device.isMobileDevice,isTabletDevice:g.Types.Device.isTabletDevice,windowTouchEventsAspect:g.Types.SiteAspects.windowTouchEvents.isRequired,getSliderGalleryMeasures:g.Types.__DangerousSantaTypes.getSliderGalleryMeasures,onImageSelected:b.PropTypes.func},g.santaTypesUtils.getSantaTypesByDefinition(i)),_currentOffset:null,_motion:false,_firstChild:null,getInitialState:function(){this.props.windowTouchEventsAspect.registerToWindowTouchEvent("touchStart",this);return a.assign(o(null,{props:this.props.compProp}),{$mobile:this.props.isMobileDevice||this.props.isTabletDevice?"mobile":"notMobile",$displayDevice:this.props.isMobileView?"mobileView":"desktopView"})},componentWillUnmount:function(){this.props.windowTouchEventsAspect.unregisterFromWindowTouchEvent("touchStart",this)},getSkinProperties:function(){this.gap=a.isNumber(this.props.compProp.margin)?this.props.compProp.margin:20;this.contentOverflow=false;var b=f.skins[this.props.skin];var c=b.exports&&b.exports.bottomGap||0;var d=Math.abs(this.getFromExports("itemContainerAdditionalHeight"));var e=this.populate(c,d);var g=Math.abs(this.getFromExports("itemContainerTotalOffset"));var h=this.props.style.width-g;if(this.itemsHolderWidth>h){this.contentOverflow=true;e=this.populate(c,d)}return{imageItem:{},images:{children:e,"data-gallery-id":this.props.id},swipeLeftHitArea:{onMouseEnter:this.prev,onMouseLeave:this._stopMovement,onTouchStart:this.prev,"data-gallery-id":this.props.id},swipeRightHitArea:{onMouseEnter:this.next,onMouseLeave:this._stopMovement,onTouchStart:this.next,"data-gallery-id":this.props.id},"":{onSwipeLeft:this.next,onSwipeRight:this.prev,"data-height-diff":k.getSkinHeightDiff(this.props.skin),"data-width-diff":k.getSkinWidthDiff(this.props.skin),"data-bottom-gap":c,"data-additional-height":d}}},getChildrenData:function(){var a=this.props.compData.items;return this.props.compProp.loop&&this.contentOverflow?a.concat(a):a},populate:function(b,c){var d;var e=this.props.compProp;var g=this.props.compData;this.itemsHolderWidth=0;var h=this.getChildrenData();d=h.map(function(d,h){var i=d;var j=this.getSkinExports().imageItem.skin;var n=this.getParams(["topPadding","imgHeightDiff"],j);var o=k.getDisplayerHeightDiff(f.skins[j],n,this.state.$displayDevice);var p=k.getDisplayerWidthDiff(f.skins[j],this.state.$displayDevice);var q=Math.floor(this.props.style.height+c);var r=this.props.compData.items.length;var s=l.getSizeAfterScaling({itemHeight:q,itemWidth:Math.floor(q*(this.props.compProp.aspectRatio||1)),displayerData:i,imageMode:this.props.compProp.imageMode,heightDiff:o,widthDiff:p,bottomGap:b});this.itemsHolderWidth=this.itemsHolderWidth+s.imageWrapperSize.imageWrapperWidth+this.gap;return this.createChildComponent(i,"wysiwyg.viewer.components.Displayer","imageItem",{rootId:this.props.rootId,currentUrlPageId:this.props.currentUrlPageId,rootNavigationInfo:this.props.rootNavigationInfo,galleryDataId:g.id,imageWrapperSize:s.imageWrapperSize,style:{display:"inline-block",margin:"0 "+(a.isNumber(e.margin)?e.margin:20)+"px 0 0",height:s.displayerSize.height,width:s.displayerSize.width},isSelected:this.state.currentIndex===h,onClick:m.bind(this,h),displayerDataQuery:d,galleryId:this.props.id,heightDiff:o,widthDiff:p,bottomGap:b,imageIndex:h%r,key:this.props.id+h,ref:this.props.id+h,id:this.props.id+h})},this);return d},prev:function(){this._move(true)},next:function(){this._move(false)},_move:function(a){var b=this.props.compProp.maxSpeed||.05;this.slide(a,b,this.props.compProp.loop)},_stopMovement:function(){if(this._sequenceId){this.easeStopSequence(this._sequenceId,1);this._sequenceId=null}},slide:function(a,b,d){if(!this.contentOverflow){return}var e=this.props.getSliderGalleryMeasures(this.props.id);var f=e.imagesWidth-(this.props.compProp.margin||0);var g=e.itemsContainerWidth;var h=c.findDOMNode(this.refs.images).offsetLeft;var i=d?-f/2:g-f;this._stopMovement();var j=this.sequence();var k=Math.abs(i)/(b*n);var l=k*(a?Math.abs(h/i):1-Math.abs(h/i));j.add("images","BasePosition",l,0,{from:{left:h},to:{left:a?0:i},ease:"Linear.easeNone"});if(d){j.add("images","BasePosition",k,0,{from:{left:a?i:0},to:{left:a?0:i},repeat:d?-1:0,immediateRender:false,ease:"Linear.easeNone"})}j.onCompleteAll(function(){var a=this.props.compData.items[this.state.currentIndex];this.handleAction("imageChanged",{id:a.id})}.bind(this));this._sequenceId=j.execute({paused:true});this.easeStartSequence(this._sequenceId,1);if(this.state.$mobile==="mobile"){this.clearTimeoutNamed(this.props.id);this._nextStopTimeout=this.setTimeoutNamed(this.props.id,function(){this._stopMovement()}.bind(this),2e3)}},onWindowTouchStart:function(a){var b=a.target.getAttribute("data-gallery-id")||a.target.parentNode.getAttribute("data-gallery-id");if(b!==this.props.id){this._stopMovement()}}}});